The World Wide Web has developed primarily as medium of content for human consumption. Automating tasks on the Web (such as information retrieval, synthesis of information, etc.) is difficult because human interpretation is often required to make information content useful. Offering relief, a new architecture for the Web is emerging, known as the “Semantic Web.” In broad terms, the Semantic Web encompasses efforts to create mechanisms that augment content with formal semantics, thereby producing content suitable for automated systems (e.g., intelligent software agents) to consume. The Semantic Web permits more automated functions on the Web (e.g., reasoning, information and service discovery, service composition, etc.), easing the workload of its users.
The Semantic Web will also pave the way for true “device independence” and customization of information content for individual users. Information on the Web can now exist in a “raw form” and any context-dependent presentation can be rendered on demand (more generally, the Semantic Web represents a departure from the current “rendering-oriented” Web). It is important to note that the Semantic Web is not a separate Web but an extension of the current one in which information, when given this well-defined meaning, better enables computers and people to work in tandem.
In the Semantic Web, content and services can be described using representation languages such as RDF (Resource Description Framework) and OWL (Ontology Web Language). In this regard, representations often refer to ontologies or specifications of conceptualizations that, in turn, enable reasoning via the use of logic rules. More particularly, ontologies may define domains by specifying, for example, concepts (i.e., classes), relationships between concepts, properties of concepts (i.e., slots), restrictions on properties (i.e., facets), individuals (i.e., instances), or the like. Ontologies may include, for example, personal information management (PIM) ontologies, location ontologies, temporal ontologies, friend-of-a-friend (FOAF) ontologies, composite capability/preference profiles (CC/PP) schema, Web service ontologies (e.g., OWL-S, Web Service Modeling Ontology—WSMO), policy ontologies, and the like. For more information on the Semantic Web, see Bemers-Lee, Hendler, and Lassila, The Semantic Web, SCIENTIFIC AMERICAN, 284(5):3443, May 2001.
The application of Semantic Web technologies to Web services may be referred to as Semantic Web services whereby descriptions of service interfaces are associated with formal semantics, allowing software agents to describe their functionality, discover and “understand” other agents' functionality and invoke services provided by other agents. Furthermore, it may be possible to combine multiple services into new services. Work on Semantic Web services is at least partially driven by the possibility to automate things that formerly have required human involvement, consequently leading to improved interoperability.
As known to those skilled in the art, RDF and OWL are two key Semantic web standards. These standards make machine consumption easy by use of Uniform Resource Identifiers (URIs) to uniquely identify resources. Moreover, both of these standards provide a common data model and a machine processable language to exchange information. For instance, both OWL and RDF use the RDF data model and both use Extensible Markup Language (XML)-based syntax (RDF/XML) machine processable language to exchange information. Additionally, RDF and OWL maintain a common vocabulary with unambiguous formal semantics. To be precise, RDF may utilize RDF Schema (RDFS) as a language for describing vocabularies in RDF. Similarly, OWL which is also a vocabulary language extension of RDF and RDFS may utilize constructs defined by RDF and RDFS.
Data models that use RDF or OWL enable applications to integrate data created by heterogeneous sources and allow derivation of implicit relationships between resources (as referred to in the art as “inferencing,” which typically refers to the process of applying rules that describe what can be derived and the conditions under which such derivations are undertaken. Both RDF and OWL have an associated set of rules that allow implicit relationships between resources to be derived. For example, a resource named “Felix” is of type “Cat,” and “Cat” is a subclass of “Mammal.” By virtue of RDF's standard inference rules the information that “Felix” is also of type “Mammal” can be derived.
RDF is a language for representing information about resources on the Web. It is particularly intended for representing metadata about Web resources, such as the title, author, and modification date of a Web page, as well as copyright and licensing information about a Web document, or the availability schedule for a shared resource. However, by generalizing the notion of a Web resource, RDF can additionally be used to represent information about things or objects that can be identified on the Web, even when the things or objects cannot be directly retrieved via the Web. Some examples include, but are not limited to, information concerning availability of items from on-line shopping store (e.g., information about specifications, prices, availability, etc.), or the description of a Web user's preferences regarding information that he/she may want delivered to them.
RDF is premised on the notion of identifying things (i.e., objects) using Web identifiers such as URIs and describing resources in terms of simple properties and property values. As shown in FIG. 1, the use of URIs enables RDF to represent simple statements, concerning resources, as a network (also known as a “graph”) of nodes and arcs representing the resources, as well as their respective properties and values. As shown, the graph includes nodes that represent various Web resources, and arcs that represent the properties of the resources or relationships between the resources. A combination of two arc endpoints and the arc connecting them, in RDF parlance, is called a “statement,” and it asserts some fact about the resource involved (statements are also called “triples”). For a more particular example, consider a RDF graph and corresponding XML-based syntax provided in FIG. 2, and Table 1 below, this example previously appearing in the W3C RDF Primer (2004).
TABLE 1Example: RDF/XML Describing Eric Miller<?xml version“1.0”?><rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”   xmlns:contact=“http://www.w3.org/2000/10/swap/pim/contact#”> <contact:Person rdf:about=“http://www.w3.org/People/EM/contact#me”>  <contact:fullName>Eric Miller</contact:fullName>  <contact:mailbox rdf:resource=“mailto:em@w3.org”/>  <contact:personalTitle>Dr.</contact:personalTitle> </contact:Person></rdf:RDF>
As shown, an RDF statement may include a subject, an object, and a predicate (or property) that denotes a relationship between a particular subject and an object (the aforementioned triple referring to the subject, predicate and object—(s, p, o)). The nodes of the RDF graph represent the subject and object (the respective nodes simply being referred to as the subject and object), and the arc represents the relationship (the arc simply being referred to as the predicate or property). The subject and predicate of a RDF statement may comprise URI references (sometimes simply referred to as a URI), and the object may comprise a URI reference or a literal. In this regard, a literal may be used to identify a value (e.g., number, date, etc.) by means of a lexical representation (e.g., string).
A data store configured to store RDF content is typically referred to as an RDF store or a triple store. Storage of information in an RDF store is currently limited to two distinct object types, namely URI and literal. One can store binary data in an RDF store, but as the size of the binary data increases, storing of binary data may become inefficient, both from a storage standpoint and a querying of content standpoint. In the case of a music file, for example, the size of the music file may be many times larger than the rest of the RDF information representing it. This drawback may be further exacerbated in resource-limited devices including an RDF store, where large binary data may exceed the memory capabilities of the device.